package wpwork.model;

import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

@Data
public class SendMessageRequestDTO {

    @NotBlank(message = "消息内容不能为空")
    private String message;

    @NotBlank(message = "消息类型不能为空")
    private String type; // PERSONAL-个人消息, GROUP-群组消息

    @NotBlank(message = "发送人ID不能为空")
    private String fromUserId;

    @NotBlank(message = "接收人ID不能为空")
    private String toUserId; // 个人消息时为接收人ID，群组消息时为群组ID

    private String groupId; // 群组消息时与toUserId一致，可省略
    private String remark;

    // 验证参数合法性
    public boolean isValid() {
        if ("group".equals(type)) {
            // 群组消息必须提供群组ID
            return toUserId != null && !toUserId.trim().isEmpty();
        } else if ("person".equals(type)) {
            // 个人消息必须提供接收人ID
            return toUserId != null && !toUserId.trim().isEmpty();
        }
        return false;
    }
}